6 #ifndef _CFEXPNETWORKINTERFACE_H_ 7 #define _CFEXPNETWORKINTERFACE_H_ 17 #define LOCALHOST "127.0.0.1" // localhost IP adress 18 #define DFNETPORT 27015 // chosen default port 19 #define DEFAULT_SERVER_NODE_ID 0x0 31 virtual size_t GetId()
const = 0;
32 virtual void SetId(
size_t id) = 0;
53 virtual size_t GetId()
const override {
return _node_ID; }
54 virtual void SetId(
size_t id)
override { _node_ID = id; }
60 virtual void Run () = 0;
61 virtual void Close() = 0;
66 template<
typename TInp,
typename TFunc>
67 std::function<TFunc()>
get_thread_functor(std::function<TFunc(TInp)> thread_fce, std::function<TInp()> input);
70 std::string _server_IP;
77 template<
typename TInp,
typename TFunc>
79 std::function<TFunc(TInp)> thread_fce, std::function<TInp()> input)
82 return [thread_fce, input] {
return thread_fce(input()); };
167 using t_MessageMap = std::map<EMainNETCommunicationPoint, std::string>;
249 template<
typename TSocket>
256 std::function<
bool (
size_t,
size_t )> message_lchr,
257 std::function<
void (
size_t,
size_t ,
t_ENetThrdMsg)> message_sttr,
259 std::function<
void (
size_t )> state_update,
260 std::function<
bool (
size_t )> synchronizer,
339 #endif // !_CFEXPNETWORKINTERFACE_H_ Definition: FEXPNetworkInterface.h:139
Definition: FEXPNetworkInterface.h:143
virtual ~ICFEXPNetBase()
Definition: FEXPNetworkInterface.h:29
std::function< void(size_t, t_fexpcommon_ct)> _thread_dtmacro_sttr
Definition: FEXPNetworkInterface.h:284
Definition: FEXPNetworkInterface.h:130
Definition: FEXPNetworkInterface.h:114
size_t GetCommPort()
Definition: FEXPNetworkInterface.h:57
Definition: FEXPNetworkInterface.h:160
Definition: FEXPNetworkInterface.h:99
Definition: FEXPNetworkInterface.h:116
std::atomic_bool _connection_start
Definition: FEXPNetworkInterface.h:64
std::function< bool(size_t, size_t)> _thread_message_lchr
Definition: FEXPNetworkInterface.h:279
Definition: FEXPNetworkInterface.h:162
Definition: FEXPNetworkInterface.h:157
std::vector< std::tuple< size_t, size_t > > MODEL_DATA_SET
Definition: FEXPNetworkInterface.h:228
virtual void SetId(size_t id) override
Definition: FEXPNetworkInterface.h:54
Definition: FEXPNetworkInterface.h:110
virtual Ptr< t_ModelData > GetMacroModelData()=0
Definition: FEXPNetworkInterface.h:124
Base network interface of a client node.
Definition: FEXPNetworkInterface.h:46
virtual ~ICFEXPNetNodeConnection()
Definition: FEXPNetworkInterface.h:51
virtual size_t GetId() const override
Definition: FEXPNetworkInterface.h:53
Definition: FEXPNetworkInterface.h:100
Definition: FEXPNetworkInterface.h:98
Definition: FEXPNetworkInterface.h:102
Definition: FEXPNetworkInterface.h:163
std::function< void(size_t, size_t, t_ENetThrdMsg)> _thread_message_sttr
Definition: FEXPNetworkInterface.h:280
t_ModelData RUNTIME_CLC_MACRO_DATA
Definition: FEXPNetworkInterface.h:231
Definition: FEXPNetworkInterface.h:107
TSocket _socket
Definition: FEXPNetworkInterface.h:274
Definition: FEXPNetworkInterface.h:103
CFEXPNetServerClientCalcData(Ptr< CFEXPSolverConfigSetting > setting)
Definition: FEXPNetworkInterface.h:213
std::string _client_ip
Definition: FEXPNetworkInterface.h:275
Definition: FEXPNetworkInterface.h:159
std::function< t_ENetThrdMsg(size_t, size_t)> _thread_message_gttr
Definition: FEXPNetworkInterface.h:278
Ptr< CFEXPSolverConfigSetting > _server_setting
Definition: FEXPNetworkInterface.h:235
Definition: FEXPCommon.h:276
double t_fexpcommon_ct
Definition: FEXPCommon.h:120
Definition: FEXPNetworkInterface.h:104
std::atomic_bool _data_received_prepared
Definition: FEXPNetworkInterface.h:217
Data for server clients.
Definition: FEXPNetworkInterface.h:210
ENETServerThreadMesage
Communication messages within the FEXP server.
Definition: FEXPNetworkInterface.h:155
Definition: FEXPNetworkInterface.h:140
Definition: FEXPNetworkInterface.h:161
static t_ModelData & GetReadModelData(Ptr< std::map< size_t, Ptr< t_ModelData >>> data, size_t key)
Definition: FEXPNetworkInterface.cpp:9
virtual size_t GetId() const =0
t_ModelData CURRENT_DATA_RECEIVED
Definition: FEXPNetworkInterface.h:221
ENETSynchronization
Synchronization nodes within the FEXP server.
Definition: FEXPNetworkInterface.h:137
std::vector< size_t > MODEL_DATA_GET
Definition: FEXPNetworkInterface.h:226
Definition: FEXPNetworkInterface.h:111
Definition: FEXPNetworkInterface.h:121
Definition: FEXPNetworkInterface.h:106
std::map< t_ModelDataKey, Ptr< t_ModelDataDta > > t_ModelData
Definition: FEXPDataContainer.h:15
Definition: FEXPNetworkInterface.h:109
std::function< void(size_t)> _thread_state_update
Definition: FEXPNetworkInterface.h:282
Definition: FEXPNetworkInterface.h:115
t_ModelData CURRENT_DATA_FOR_POUT
Definition: FEXPNetworkInterface.h:223
Definition: FEXPNetworkInterface.h:145
virtual void SendInstruction(size_t message, Ptr< t_ModelData > data)=0
Definition: FEXPNetworkInterface.h:90
Definition: FEXPNetworkInterface.h:141
EMainNETCommunicationPoint
Items of communication protocol.
Definition: FEXPNetworkInterface.h:95
std::function< TFunc()> get_thread_functor(std::function< TFunc(TInp)> thread_fce, std::function< TInp()> input)
Definition: FEXPNetworkInterface.h:78
std::atomic_bool _data_for_send_prepared
Definition: FEXPNetworkInterface.h:216
std::function< void(size_t, Ptr< CFEXGeomTools::t_BoundBox >, size_t)> _thread_mdmacro_sttr
Definition: FEXPNetworkInterface.h:285
ICFEXPNetServerClientNode(TSocket socket, std::string client_ip, size_t node_id, std::string server_ip, size_t port, std::function< t_ENetThrdMsg(size_t, size_t)> message_gttr, std::function< bool(size_t, size_t)> message_lchr, std::function< void(size_t, size_t, t_ENetThrdMsg)> message_sttr, std::function< Ptr< t_NetCalcData >(size_t)> clcdata_gttr, std::function< void(size_t)> state_update, std::function< bool(size_t)> synchronizer, std::function< void(size_t, t_fexpcommon_ct)> dtmacro_sttr, std::function< void(size_t, Ptr< CFEXGeomTools::t_BoundBox >, size_t)> mdmacro_sttr)
Definition: FEXPNetworkInterface.h:254
Definition: FEXPNetworkInterface.h:158
Definition: FEXPNetworkInterface.h:123
static t_MessageMap MESSAGES
Definition: FEXPNetworkInterface.h:168
Definition: FEXPNetworkInterface.h:127
Ptr< t_ModelDataDta > GetModelData(size_t key)
Definition: FEXPNetworkInterface.h:233
Definition: FEXPNetworkInterface.h:101
Definition: FEXPNetworkInterface.h:144
virtual void AddMacroModelData(const t_ModelDataKey &key, Ptr< t_ModelDataDta > data)=0
Definition: FEXPNetworkInterface.h:148
Definition: FEXPNetworkInterface.h:112
Definition: FEXPNetworkInterface.h:26
Definition: FEXPNetworkInterface.h:118
Definition: FEXPNetworkInterface.h:164
Network service on the client workstation side.
Definition: FEXPNetworkInterface.h:184
Base interface for server clients.
Definition: FEXPNetworkInterface.h:250
ICFEXPNetNodeConnection(size_t node_id, std::string server_ip, size_t port)
Definition: FEXPNetworkInterface.cpp:21
Definition: FEXPNetworkInterface.h:147
Definition: FEXPNetworkInterface.h:142
Definition: FEXPNetworkInterface.h:113
std::string t_ModelDataKey
Definition: FEXPDataContainer.h:13
Definition: FEXPNetworkInterface.h:105
Definition: FEXPNetworkInterface.h:120
virtual void SetId(size_t id)=0
Definition: FEXPNetworkInterface.h:146
t_ModelData INPUT_MACRO_MODEL_DATA
Definition: FEXPNetworkInterface.h:230
virtual Ptr< std::map< size_t, Ptr< t_ModelData > > > ReadInstruction()=0
std::map< EMainNETCommunicationPoint, std::string > t_MessageMap
Definition: FEXPNetworkInterface.h:167
static std::string GetNetMessage(EMainNETCommunicationPoint comm)
Definition: FEXPNetworkInterface.cpp:63
t_ModelData CURRENT_DATA_FOR_SEND
Definition: FEXPNetworkInterface.h:219
Definition: FEXPNetworkInterface.h:108
Definition: FEXPNetworkInterface.h:149
Definition: FEXPNetworkInterface.h:97
std::function< bool(size_t)> _thread_synchronizer
Definition: FEXPNetworkInterface.h:283
std::string GetServerNodeIP()
Definition: FEXPNetworkInterface.h:56
std::function< Ptr< t_NetCalcData >size_t)> _thread_clcdata_gttr
Definition: FEXPNetworkInterface.h:281
Definition: FEXPNetworkInterface.h:150